package com.ruoyi.system.domain;

import com.baomidou.mybatisplus.annotation.*;
import com.ruoyi.system.entity.AbdulBaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.util.Date;

@EqualsAndHashCode(callSuper = true)
@Data
@TableName("member_level")
@ApiModel("会员等级实体")
public class MemberLevel extends AbdulBaseEntity {

    @TableId(type = IdType.AUTO)
    @ApiModelProperty("自增主键，唯一标识每个会员等级")
    private Integer id;

    @ApiModelProperty(value = "会员等级名称", required = true, example = "普通会员")
    private String levelName;

    @ApiModelProperty(value = "会员等级描述", example = "享受基础权益")
    private String levelDescription;

    @ApiModelProperty(value = "会员权益（JSON格式或文本描述）", example = "生日礼券、优先排队")
    private String benefits;

    @ApiModelProperty(value = "升级所需积分", example = "1000")
    private Integer upgradePoints;

    @ApiModelProperty(value = "当前该等级的会员人数", example = "500")
    private Integer currentMemberCount;

    @ApiModelProperty(value = "状态", allowableValues = "ACTIVE, INACTIVE, ARCHIVED", example = "ACTIVE")
    private String status;

    @ApiModelProperty(value = "商品折扣", example = "95.00")
    private BigDecimal productDiscount;

    @ApiModelProperty(value = "桌台费折扣", example = "90.00")
    private BigDecimal tableFeeDiscount;

    @ApiModelProperty(value = "桌台服务费折扣", example = "85.00")
    private BigDecimal tableServiceFeeDiscount;

    @ApiModelProperty(value = "设备服务费折扣", example = "80.00")
    private BigDecimal deviceServiceFeeDiscount;

    @ApiModelProperty(value = "员工服务费折扣", example = "75.00")
    private BigDecimal staffServiceFeeDiscount;

    @ApiModelProperty(value = "桌台超时费折扣", example = "70.00")
    private BigDecimal tableOvertimeFeeDiscount;

    @ApiModelProperty(value = "桌台时长卡折扣", example = "65.00")
    private BigDecimal tableDurationCardDiscount;

    @ApiModelProperty(value = "桌台次卡折扣", example = "60.00")
    private BigDecimal tableTimesCardDiscount;

    @ApiModelProperty(value = "商品次卡折扣", example = "55.00")
    private BigDecimal productTimesCardDiscount;

    @ApiModelProperty(value = "储值卡余额不足时不享受折扣", example = "false")
    private Boolean disableDiscountWhenLowBalance;

    @ApiModelProperty(value = "不参与会员积分", example = "false")
    private Boolean excludeFromPoints;

    @ApiModelProperty(value = "手机号", example = "13800000000")
    private String phone;
}
